package com.ruoyi.common.core.enums;

import lombok.Getter;

/**
 * 是和否
 *
 * @author ruoyi
 */
@Getter
public enum YesNoEnum {
  YES(1, true, "是"), NO(0, false, "否");

  /**
   * 编码 0 或者 1
   */
  private final int code;
  /**
   * 值 是或者否
   */
  private final boolean value;
  /**
   * 中文名
   */
  private final String name;

  YesNoEnum(int code, boolean value, String name) {
    this.code = code;
    this.value = value;
    this.name = name;
  }

  /**
   * 判断相等
   */
  public boolean eqCode(int code) {
    return this.code == code;
  }

  public boolean isTrue() {
    return this.value;
  }

  /**
   * 根据code获取枚举
   *
   * @param code 编码
   * @return 枚举对象
   */
  public static YesNoEnum getByCode(int code) {
    if (code == 1) {
      return YES;
    }
    return NO;
  }

  /**
   * 根据Value获取枚举
   *
   * @param value  值
   * @return 枚举对象
   */
  public static YesNoEnum getByValue(boolean value) {
    if (value) {
      return YES;
    }
    return NO;
  }

  /**
   * 是否为真
   * @param code 编码
   * @return 是否为真
   */
  public static boolean isTrue(int code) {
    return YesNoEnum.YES.eqCode(code);
  }

  /**
   * 是否为假
   * @param code 编码
   * @return 是否为真
   */
  public static boolean isFalse(int code) {
    return !isTrue(code);
  }

}
